package com.lvtulife.common.component.constants;

/* 系统逻辑判断常量
 */
public class Constant implements java.io.Serializable {

    public static class Sys {

        /*系统路径*/
        public static class RootPath {
            /*服务器部署路径:[ROOTPATH]*/
            public static String ROOTPATH = "";
            /*为开发环境和测试环境设置的windows上ROOTPATH路径:[DEV_ROOTPATH]*/
            public static String DEV_ROOTPATH = "";
        }

        /*请求地址各模块头部定义*/
        public static class UrlHead {
            /*内部使用 在各controller的@RequestMapping中使用，以便统一控制*/
            public static final String URL_HEAD_BASE = "/base";
            public static final String URL_HEAD_SYSTEM = "/system";
            public static final String URL_HEAD_GTD = "/gtd";

            /*外部使用 在各controller.api的@RequestMapping中使用，对接口提供控制(建议按包名分，以后方便查询)*/
            public static final String API_HEAD = "/api";
            public static final String API_HEAD_BASE = API_HEAD + URL_HEAD_BASE;
            public static final String API_HEAD_SYSTEM = API_HEAD + URL_HEAD_SYSTEM;
            public static final String API_HEAD_GTD = API_HEAD + URL_HEAD_GTD;
        }

        /*各模块下JSP的根目录*/
        public static class JspPath {
            public static final String PATH_ROOT = "/views";
            public static final String PATH_ERROR = "/views/error";
            public static final String PATH_BASE = PATH_ROOT + UrlHead.URL_HEAD_BASE;
        }

        /*系统内置用户角色标识*/
        public static class RoleType {
            public static final String ROLE_ROOT = "ROLE_ROOT";
            public static final String ROLE_USER = "ROLE_USER";
            public static final String ROLE_API = "ROLE_API";
        }

        /*系统权限点即对应请求方法*/
        public static class AuthPoint {

            /*系统权限点*/
            public static class Auth {
                public static final String GETCOMBOBOX = "getCombobox";
                public static final String FORM = "form";
                public static final String LIST = "list";
                public static final String GETBYID = "getById";
                public static final String FIND = "find";
                public static final String FINDALL = "findAll";
                public static final String GRID = "grid";
                public static final String GRIDALL = "gridAll";
                public static final String TREEGRID = "treeGrid";
                public static final String SAVE = "save";
                public static final String EDIT = "update";
                public static final String DELETE = "delete";
                public static final String DELETES = "deletes";
            }

            /*权限权重*/
            public static class AuthValue {
                public static final int FIND = 100000;
                public static final int SAVE = 200000;
                public static final int EDIT = 300000;
                public static final int REMOVE = 400000;
            }

            /*权限对应请求方法*/
            public static class AuthUrl {
                public static final String GETCOMBOBOX = "/getCombobox";
                public static final String FORM = "/form";
                public static final String LIST = "/list";
                public static final String GETBYID = "/getById";
                public static final String FIND = "/find";
                public static final String FINDALL = "/findAll";
                public static final String GRID = "/grid";
                public static final String GRIDALL = "/gridAll";
                public static final String TREEGRID = "/treeGrid";
                public static final String SAVE = "/save";
                public static final String UPDATE = "/update";
                public static final String DELETE = "/delete";
                public static final String DELETES = "/deletes";
            }
        }

        /* 刷新量 */
        public static class MyBatisFlush {
            /*(批量新增和批量更新时)多少个数量级,flush一次*/
            public static final Integer FLUSH_CRITICAL_VAL = 100;
            /*(批量新增和批量更新时)大数量级,flush一次*/
            public static final Integer FLUSH_BIG_CRITICAL_VAL = 99999;
        }
    }

    @ParentLabel(value = "基础业务常量")
    public static class Base {

        @ParentLabel(value = "数据状态")
        public static class State {
            @Label("正常状态")
            public static final int NORMAL = 0;
            @Label("删除状态")
            public static final int DEL = 9;
        }

        @ParentLabel(value = "启用状态")
        public static class Enable {
            @Label("禁用")
            public static final int DISABLED = 0;
            @Label("启用")
            public static final int ENABLE = 1;
        }

        @ParentLabel(value = "是否状态")
        public static class YesOrNo {
            @Label("否")
            public static final int NO = 0;
            @Label("是")
            public static final int YES = 1;
        }

        @ParentLabel(value = "打开状态")
        public static class Open {
            @Label("关闭")
            public static final int CLOSE = 0;
            @Label("开启")
            public static final int OPEN = 1;
        }

        @ParentLabel(value = "数据来源")
        public static class DataSource {
            @Label("系统内置")
            public static final int IN_SYS = 0;
            @Label("用户设定")
            public static final int IN_USER = 1;
        }

        @ParentLabel(value = "用户状态")
        public static class UserState {
            @Label("正常")
            public static final int NORMAL = 0;
            @Label("过期")
            public static final int EXPIRE = 7;
            @Label("锁定")
            public static final int LOCK = 8;
            @Label("禁用")
            public static final int DISABLED = 9;
        }

        @ParentLabel(value = "角色状态")
        public static class RoleState {
            @Label("正常")
            public static final int NORMAL = 0;
            @Label("禁用")
            public static final int DISABLED = 9;
        }

        @ParentLabel(value = "登录类型")
        public static class LoginType {
            @Label("登录")
            public static final int IN = 0;
            @Label("注销")
            public static final int OUT = 1;
        }

        @ParentLabel(value = "性别")
        public static class Gender {
            @Label("未指定")
            public static final int STATELESS = 0;
            @Label("男性")
            public static final int MALE = 1;
            @Label("女性")
            public static final int FEMALE = 2;
        }

        @ParentLabel(value = "资源属性")
        public static class ResProperty {
            @Label("菜单")
            public static final int MENU = 0;
            @Label("功能")
            public static final int FUN = 1;
        }

        @ParentLabel(value = "日志类型")
        public static class LogType {
            @Label("操作")
            public static final int OP = 0;
            @Label("异常")
            public static final int ERROR = 1;
        }
    }

    @ParentLabel(value = "仓储业务常量")
    public static class Wms {

        @ParentLabel(value = "自动编码")
        public static class AutoCodeType {
            @Label("业务编号")
            public static final int BUSINESS = 1;
            @Label("工作号")
            public static final int WORK = 0;
        }

        @ParentLabel(value = "产地")
        public static class BrandOrigin {
            @Label("大陆")
            public static final int DL = 1;
            @Label("台湾")
            public static final int TW = 2;
            @Label("欧美")
            public static final int OM = 3;
            @Label("日韩")
            public static final int RH = 4;
        }

        @ParentLabel(value = "入库类型")
        public static class InType {
            @Label("普通入库")
            public static final int PTRK = 1;
            @Label("本库转让")
            public static final int BKZR = 2;
            @Label("库组转让")
            public static final int KZZR = 3;
            @Label("区内转入")
            public static final int QNZR = 4;
            @Label("临时入库")
            public static final int LSRK = 5;
            @Label("其他入库")
            public static final int QTRK = 6;
            @Label("退货入库")
            public static final int THRK = 7;
            @Label("换货入库")
            public static final int HHRK = 8;
        }

        @ParentLabel(value = "入库状态")
        public static class InStat {
            @Label("新建")
            public static final int NEW = 0;
            @Label("已创建")
            public static final int CREATE = 1;
            @Label("已确认")
            public static final int AFFIRM = 2;
            @Label("已作废")
            public static final int CANCEL = 3;
        }

        @ParentLabel(value = "日期类型")
        public static class DayType {
            @Label("入库日期")
            public static final int IN = 1;
            @Label("到货日期")
            public static final int ARRIVE = 2;
            @Label("确认日期")
            public static final int AFFRIM = 3;
            @Label("入库日期")
            public static final int CREATE = 4;
        }

    }

    @ParentLabel(value = "GTD业务常量", key = "GTD")
    public static class Gtd {

        @ParentLabel(value = "星标")
        public static class Star {
            @Label("未标记")
            public static final int NO = 0;
            @Label("已标记")
            public static final int YES = 1;
        }

        @ParentLabel(value = "置顶")
        public static class Top {
            @Label("未置顶")
            public static final int NO = 0;
            @Label("已置顶")
            public static final int YES = 1;
        }

        @ParentLabel(value = "加密")
        public static class Encrypt {
            @Label("未加密")
            public static final int NO = 0;
            @Label("已加密")
            public static final int YES = 1;
        }

        @ParentLabel(value = "阶段")
        public static class Stage {
            @Label("未指定")
            public static final int STATELESS = 0;
            @Label("第一阶段")
            public static final int ONE = 1;
            @Label("第二阶段")
            public static final int TWO = 2;
            @Label("第三阶段")
            public static final int THREE = 3;
            @Label("第四阶段")
            public static final int FOUR = 4;
        }

        @ParentLabel(value = "公开")
        public static class Open {
            @Label("未公开")
            public static final int CLOSE = 0;
            @Label("已公开")
            public static final int OPEN = 1;
        }

        @ParentLabel(value = "理想状态")
        public static class IdealState {
            @Label("未达成")
            public static final int WAIT = 0;
            @Label("已达成")
            public static final int COMPLETED = 1;
            @Label("作废")
            public static final int CANCEL = 9;
        }

        @ParentLabel(value = "目标状态")
        public static class AimState {
            @Label("未达成")
            public static final int WAIT = 0;
            @Label("已达成")
            public static final int COMPLETED = 1;
            @Label("作废")
            public static final int CANCEL = 9;
        }

        @ParentLabel(value = "事务状态")
        public static class AffairsState {
            @Label("未达成")
            public static final int WAIT = 0;
            @Label("已达成")
            public static final int COMPLETED = 1;
            @Label("作废")
            public static final int CANCEL = 9;
        }

        @ParentLabel(value = "目标单位")
        public static class AimUnit {
            @Label("未划分")
            public static final int STATELESS = 0;
            @Label("单元")
            public static final int UNIT = 1;
            @Label("月度")
            public static final int MONTH = 2;
            @Label("季度")
            public static final int SEASON = 3;
            @Label("年度")
            public static final int YEAR = 4;
        }

        @ParentLabel(value = "奖励类别")
        public static class RewardType {
            @Label("虚拟")
            public static final int VIRTUAL = 0;
            @Label("实物")
            public static final int ENTITY = 1;
        }

        @ParentLabel(value = "实施状态")
        public static class Do {
            @Label("未实施")
            public static final int NO = 0;
            @Label("已实施")
            public static final int YES = 1;
        }

        @ParentLabel(value = "重复类型")
        public static class RepeatType {
            @Label("一次性活动")
            public static final int DISPOSABLE = 0;
            @Label("每天")
            public static final int DAY = 1;
            @Label("每个工作日")
            public static final int WORK_DAY = 2;
            @Label("每周")
            public static final int WEEK = 3;
            @Label("每月")
            public static final int MONTH = 4;
            @Label("每年")
            public static final int YEAR = 5;
            @Label("每年农历")
            public static final int LUNAR = 6;
        }

        @ParentLabel(value = "重复条件")
        public static class RepeatTerm {
            @Label("无重复")
            public static final int NO = 0;
            @Label("无限重复")
            public static final int INFINITE = 1;
            @Label("截止至某个日期")
            public static final int DAY = 2;
            @Label("限定次数")
            public static final int COUNT = 3;
        }

        @ParentLabel(value = "日历类型")
        public static class Calendar {
            @Label("公历")
            public static final int GREGORIAN = 0;
            @Label("农历")
            public static final int CHINESE = 1;
        }

        @ParentLabel(value = "时段")
        public static class Interval {
            @Label("未安排")
            public static final int STATELESS = 0;
            @Label("早晨")
            public static final int MORNING = 1;
            @Label("上午")
            public static final int AM = 2;
            @Label("中午")
            public static final int NOONTIME = 3;
            @Label("下午")
            public static final int PM = 4;
            @Label("傍晚")
            public static final int NIGHTFALL = 5;
            @Label("晚间")
            public static final int EVENING = 6;
            @Label("凌晨")
            public static final int DAWN = 7;
        }

        @ParentLabel(value = "事务来源")
        public static class AffairsSource {
            @Label("目标")
            public static final int AIM = 0;
            @Label("习惯")
            public static final int HABIT = 1;
            @Label("日历")
            public static final int CALENDAR = 2;
            @Label("临时")
            public static final int INTERIM = 3;
        }

        @ParentLabel(value = "紧急重要程度")
        public static class AffairsImportance {
            @Label("未指定")
            public static final int STATELESS = 0;
            @Label("不重要不紧急")
            public static final int IMPORTANT_NO_URGENCY_NO = 1;
            @Label("不重要紧急")
            public static final int IMPORTANT_NO_URGENCY_YES = 2;
            @Label("重要不紧急")
            public static final int IMPORTANT_YES_URGENCY_NO = 3;
            @Label("重要紧急")
            public static final int IMPORTANT_YES_URGENCY_YES = 4;
        }

        @ParentLabel(value = "目标类型")
        public static class AimType {
            @Label("未指定")
            public static final int STATELESS = 0;
            @Label("能力与修养")
            public static final int AIM_T1 = 1;
            @Label("家庭与健康")
            public static final int AIM_T2 = 2;
            @Label("事业与财富")
            public static final int AIM_T3 = 3;
            @Label("生活与物质")
            public static final int AIM_T4 = 4;
            @Label("社交与娱乐")
            public static final int AIM_T5 = 5;
        }

        @ParentLabel(value = "目标类型")
        public static class AimGroup {
            @Label("主干目标")
            public static final int AIM_TRUNK = 1;
            @Label("分支目标")
            public static final int AIM_BRANCH = 2;
        }
    }
}
